#define _CRT_SECURE_NO_WARNINGS 1
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
//void print(unsigned int n)
//{
//	if (n < 10)
//	{
//		printf("%d ", n % 10);
//		
//	}
//	print(n / 10);
//}
//int main()
//{
//	unsigned int a = 0;
//	scanf("%u", &a);
//	print(a);
//	return 0;
//}
//int main()
//{
//	int a = 0;
//	int b = 0;
//	int n = 1;
//	scanf("%d", &a);
//	for (b = 1; b <= a; b++)
//	{
//		if(b>=1)
//			n = n * b;
//	}
//	printf("%d", n);
//	return 0;
//}
//int jie(int n)
//{
//	if (n >= 2)
//	{
//		return n*jie(n - 1);
//	}
//	else
//	{
//		return 1;
//	}
//}
//int main()
//{
//	int a = 0;
//	scanf("%d", &a);
//	int b = jie(a);
//	printf("%d", b);
//	return 0;
//}
//int lenght(char* s)
//{
//	int count = 0;
//	while (*s != '\0')
//	{
//		count++;
//		s++;
//	}
//	return count;
////}
//int lenght(char* s)
//{
//	if (*s == '\0')
//	{
//		return 0;
//	}
//	else
//	{
//		return 1 + lenght(s + 1);
//	}
////}
//int main()
//{
//	char shu[] = "abcde";
//	int len = strlen(shu);
//	printf("%d", len);
//	return 0;
//}
//void reverse_string(char* s)
//{
//	if (*s != '\0')
//		reverse_string(s + 1);
//		printf("%c", *s);
//
//}
//int main()
//{
//	char arr[] = "abcdefg";
//	reverse_string(arr);
//
//	return 0;
//}
//int DigitSum(int n)
//{
//	if (n < 10)
//	{
//		return n;
//	}
//	return DigitSum(n / 10)+n%10;
//}
//int main()
//{
//	 unsigned int a = 0;
//	scanf("%u", &a);
//	int b = DigitSum(a);
//	printf("%d", b);
//	return 0;
//}
int mi(int n, int k)
{
	int d = 1;
	int e = 0;
	if (k==1)
	{
		return n;	
	}
	return mi(n, k-1) * n;
}
int main()
{
	int a = 0;
	int b = 0;
	scanf("%d%d", &a, &b);
	int c = mi(a, b);
	printf("%d", c);
	return 0;
}